// pages/admin/review/list.js
const app = getApp();
const reviewApi = require('../../../utils/reviewApi');

Page({

  /**
   * 页面的初始数据
   */
  data: {
    keyword: '',
    statusOptions: [
      { value: -1, label: '全部' },
      { value: 1, label: '显示' },
      { value: 0, label: '隐藏' }
    ],
    statusIndex: 0,
    date: '',
    today: new Date().toISOString().split('T')[0],
    reviews: [],
    page: 1,
    size: 10,
    hasMore: true,
    loading: false,
    showReplyModal: false,
    replyContent: '',
    currentReviewId: null
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 禁用评论管理功能，直接返回首页
    wx.showModal({
      title: '功能已移除',
      content: '评论管理功能已被移除',
      showCancel: false,
      success: function(res) {
        wx.switchTab({
          url: '/pages/admin/home/home'
        })
      }
    });
    return;
    
    this.loadReviews();
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    this.setData({
      reviews: [],
      page: 1,
      hasMore: true
    }, () => {
      this.loadReviews().then(() => {
        wx.stopPullDownRefresh();
      });
    });
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    if (this.data.hasMore && !this.data.loading) {
      this.loadMore();
    }
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },

  // 搜索相关
  onKeywordInput(e) {
    this.setData({ keyword: e.detail.value });
  },

  search() {
    this.setData({
      reviews: [],
      page: 1,
      hasMore: true
    }, () => {
      this.loadReviews();
    });
  },

  // 筛选相关
  onStatusChange(e) {
    this.setData({
      statusIndex: e.detail.value,
      reviews: [],
      page: 1,
      hasMore: true
    }, () => {
      this.loadReviews();
    });
  },

  onDateChange(e) {
    this.setData({
      date: e.detail.value,
      reviews: [],
      page: 1,
      hasMore: true
    }, () => {
      this.loadReviews();
    });
  },

  // 加载评论
  async loadReviews() {
    if (this.data.loading) return;

    this.setData({ loading: true });

    try {
      const params = {
        page: this.data.page,
        size: this.data.size,
        keyword: this.data.keyword,
        status: this.data.statusOptions[this.data.statusIndex].value,
        date: this.data.date
      };

      const res = await reviewApi.getAdminReviews(params);
      
      this.setData({
        reviews: this.data.page === 1 ? res.list : [...this.data.reviews, ...res.list],
        hasMore: res.list.length === this.data.size
      });
    } catch (error) {
      console.error('加载评论失败:', error);
      wx.showToast({
        title: '加载失败',
        icon: 'none'
      });
    } finally {
      this.setData({ loading: false });
    }
  },

  loadMore() {
    this.setData({
      page: this.data.page + 1
    }, () => {
      this.loadReviews();
    });
  },

  // 评论操作
  async deleteReview(e) {
    const { id } = e.currentTarget.dataset;
    
    const res = await wx.showModal({
      title: '确认删除违规评论',
      content: '确定要删除这条违规评论吗？删除后将无法恢复。',
      confirmText: '删除',
      confirmColor: '#f56c6c'
    });

    if (res.confirm) {
      try {
        // 使用admin接口删除违规评论
        await reviewApi.deleteAdminReview(id);
        wx.showToast({
          title: '删除成功',
          icon: 'success'
        });
        // 刷新列表
        this.setData({
          reviews: this.data.reviews.filter(item => item.id !== id)
        });
      } catch (error) {
        console.error('删除评论失败:', error);
        wx.showToast({
          title: '删除失败',
          icon: 'none'
        });
      }
    }
  },

  // 切换评论可见状态
  async toggleReviewStatus(e) {
    const { id, status } = e.currentTarget.dataset;
    const newStatus = status === 1 ? 0 : 1; // 切换状态

    try {
      await reviewApi.updateReviewStatus(id, newStatus);
      
      // 更新本地数据
      this.setData({
        reviews: this.data.reviews.map(item => {
          if (item.id === id) {
            return { ...item, status: newStatus };
          }
          return item;
        })
      });

      wx.showToast({
        title: newStatus === 1 ? '已显示' : '已隐藏',
        icon: 'success'
      });
    } catch (error) {
      console.error('更新评论状态失败:', error);
      wx.showToast({
        title: '操作失败',
        icon: 'none'
      });
    }
  },

  // 其他功能
  goToProduct(e) {
    const { id } = e.currentTarget.dataset;
    wx.navigateTo({
      url: `/pages/product/detail?id=${id}`
    });
  },

  previewImage(e) {
    const { urls, current } = e.currentTarget.dataset;
    wx.previewImage({
      urls,
      current
    });
  }
})

// 日期格式化函数
function formatDate(dateStr) {
  if (!dateStr) return '';
  const date = new Date(dateStr.replace(/-/g, '/'));
  return date.getFullYear() + '-' + 
         String(date.getMonth() + 1).padStart(2, '0') + '-' + 
         String(date.getDate()).padStart(2, '0');
}